<?php
namespace database;

use config\Config;
use Medoo\Medoo;

Class DB
{
    // 链接数据库 $database数据库名
    public static function conn($database)
    {
        $host = Config::config('mysql')["host"];
        $user = Config::config('mysql')["username"];
        $password = Config::config('mysql')["pwd"];

        $db = new Medoo([
                'database_type' => 'mysql',
                'database_name'=>$database,
                'server'=>$host,
                'username'=>$user,
                'password'=>$password
        ]);

        return $db;
    }

    /* 查询
    *   $db 链接标识
    *   $table 表名
    *   $where 查询条件[array]
    *   $fields 查询字段(可空,空为全部)[string/array]
    */
    public static function select($db, $table, $where, $fields = "*")
    {
        $rows = $db->select($table, $fields, $where);
        return $rows;
    }

    /* 多表查询
    *   $db 链接标识
    *   $table 表名
    *   $relation 关联关系[array]
    *   $fields 查询字段(可空,空为全部)[string/array]
    *   $where 查询条件[array]
    */
    public static function selectJoin($db, $table, $relation, $where, $fields = "*")
    {
        $rows = $db->select($table, $relation, $fields, $where);
        return $rows;
    }

    /*  修改表
    *   $db 链接标识
    *   $table 表名
    *   $data 修改内容[array]
    *   $where 查询条件[array]
    */
    public static function update($db, $table, $data, $where)
    {
        $rows = $db->update($table, $data, $where);
        return $rows;
    }

    /* 入库
    *   $db 链接标识
    *   $table 表名
    *   $data 内容[array]
    */
    public static function insert($db, $table, $data)
    {

        $insertFlag = $db->insert($table, $data);
        if ($insertFlag) {
            return true;
        } else {
            return false;
        }
    }

    /*  删除
    *   $db 链接标识
    *   $table 表名
    *   $where 条件[array]
    */
    public static function delete($db, $table, $where)
    {

        $delFlag = $db->delete($table, $where);
        if ($delFlag) {
            return true;
        } else {
            return false;
        }
    }

    // 查询数量 $where 条件[array]
    public static function count($db, $table, $where)
    {
        $nums = $db->count($table, $where);
        return $nums;
    }

    // 关闭数据库 
    public static function close($db)
    {
        $db = NULL;
    }

    // 源生sql语句
    public static function query($db, $sql)
    {
        $queryFlag = $db->query($sql)->fetchAll();
        return $queryFlag;
    }
}
